package com.mango.ch01;


import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.mapreduce.Partitioner;

/**
 * 定制分区器 ，继承hadoop的分区器基类 复写父类的方法
 * 
 * @author 游客
 *
 */
public class DateTemperaturePartitioner extends Partitioner<DateTemperaturePair, IntWritable> {

	// 传进来的键是自己定制的数据类型,value则是温度的数值，用以排序
	// 分区器的作用就是将同一key的数据区分出来送给一个同key的规约器
	@Override
	public int getPartition(DateTemperaturePair key, IntWritable value, int numPartitions) {
		// TODO Auto-generated method stub
		// 确保分区数为非负
		return Math.abs(key.getYearMonth().hashCode() % numPartitions);
	}

}
